Exempel på postöverskridande funktioner för diagram
Exempel på top-funktionen
Nedanstående exempel har gjorts med top-funktionen, men kan på likartat sätt tilllämpas på funktionernabottom, first och last. Observera att funktionerna first och last bara är relevanta för pivottabeller.
Exempel 1:
Studera tabellen nedan. Den visar hur top-funktionen kan användas i en endimensionell tabell.
Month | sum(Val) | top(sum(Val)) | sum(Val) / top(sum(Val)) |
---|---|---|---|
- | 21 | 3 | 700% |
1 | 3 | 3 | 100% |
2 | 7 | 3 | 233% |
3 | 11 | 3 | 367% |
I det endimensionella fallet hänför sig top-funktionen alltid till tabellens första rad som innehåller data (raden för totaler räknas inte).
Notera att uttryck som innehåller top-funktionen får resultat även i raden för totaler, eftersom totalen är tydligt relaterad till ett specifikt kolumnsegment - i det här fallet hela kolumnen.
Exempel 2:
Nedan visas en tvådimensionell rak tabell som primärt sorterats utifrån Grupp:
Month | Grp | sum(Val) | top(sum(Val)) | top(total sum(Val)) |
---|---|---|---|---|
- | - | 21 | - | 1 |
1 | A | 1 | 1 | 1 |
2 | A | 3 | 1 | 1 |
3 | A | 5 | 1 | 1 |
1 | B | 2 | 2 | 1 |
2 | B | 4 | 2 | 1 |
3 | B | 6 | 2 | 1 |
Top-funktionen utan total-kvalificeraren returnerar nu uttrycket utvärderat över den översta raden i den inre sorteringsgruppen (Grupp i detta fall). Ett värde returneras för Grupp=A and one for Grupp=B.
Genom att använda total i en flerdimensionell kontext refererar man åter till tabellens översta rad, varvid ett och samma värde returneras för alla rader. Uttrycket utvärderas givetvis för kolumnsegmentet, som omfattar hela kolumnen.
Uttrycket som använder top-funktionen utan total-kvalificeraren resulterar i NULL i raden för totaler, eftersom det inte finns någon tydlig association till ett specifikt kolumnsegment.
Nu ska vi konvertera den raka tabellen ovan till en pivottabell med alla totaler påslagna.
Month | Grp | sum(Val) | top(sum(Val)) | top(total sum(Val)) |
---|---|---|---|---|
1 | A | 1 | 1 | 1 |
1 | B | 2 | 1 | 1 |
1 | Totalt | 3 | 1 | - |
2 | A | 3 | 3 | 1 |
2 | B | 4 | 3 | 1 |
2 | Totalt | 7 | 3 | - |
3 | A | 5 | 5 | 1 |
3 | B | 6 | 5 | 1 |
3 | Totalt | 11 | 5 | - |
Totalt | - | 21 | - | 1 |
Uttrycket som använder top-funktionen utan total-kvalificeraren resulterar i NULL i raden för totaler, eftersom det inte finns någon tydlig association till ett specifikt kolumnsegment. Alla delsummor beräknas dock för varje kolumnsegment.
Uttrycket med total saknar värden i raderna för delsummor, men returnerar ett värde i raden för sammanlagda totaler.
Exempel 3:
Studera den tvådimensionella raka tabellen som primärt sorterats utifrån Grupp:
Month | Grp | sum(Val) | top(sum(Val)) | sum(Val) / top(sum(Val)) |
---|---|---|---|---|
- | - | 21 | - | - |
1 | A | 1 | 1 | 100% |
2 | A | 3 | 1 | 300% |
3 | A | 5 | 1 | 500% |
1 | B | 2 | 2 | 100% |
2 | B | 4 | 2 | 200% |
3 | B | 6 | 2 | 300% |
Vi kan fortsätta med att ändra sorteringsordningen mellan fälten så att diagrammet sorteras huvudsakligen utifrån Månad. Resultatet följer nedan:
Month | Grp | sum(Val) | top(sum(Val)) | sum(Val) / top(sum(Val)) |
---|---|---|---|---|
- | - | 21 | - | - |
1 | A | 1 | 1 | 100% |
1 | B | 2 | 1 | 200% |
2 | A | 3 | 3 | 100% |
2 | B | 4 | 3 | 133% |
3 | A | 5 | 5 | 100% |
3 | B | 6 | 5 | 120% |
Exempel på above-funktionen
Nedanstående exempel har gjorts med above-funktionen, men kan på likartat sätt tilllämpas på funktionerna below, before och after. Observera att funktionernabefore och after bara är relevanta för pivottabeller.
Exempel 4:
Studera den raka tabellen nedan. Den visar hur above-funktionen kan användas i en endimensionell tabell.
Month | sum(Val) | above(sum(Val)) | sum(Val) / above(sum(Val)) |
---|---|---|---|
- | 21 | - | - |
1 | 3 | - | - |
2 | 7 | 3 | 233% |
3 | 11 | 7 | 157% |
Den tredje kolumnen visar uttrycket sum(Val) utvärderat en rad ovanför den aktuella raden, vilket bekräftas vid en jämförelse med värdena för sum(val) i den andra. På översta raden returnerar above-funktionen NULL, eftersom det inte finns någon rad ovanför där uttrycket skulle kunna utvärderas. Funktionen above returnerar alltid NULL på rader för totaler.
Den fjärde kolumnen illustrerar den mest typiska användningen av denna funktion, d v s. uträkning av skillnaden mellan exempelvis olika tidsperioder.
Exempel 5:
Studera den tvådimensionella pivottabellen nedan:
Grp | Month | sum(Val) | above(sum(Val)) | above(total sum(Val)) |
---|---|---|---|---|
A | 1 | 1 | - | - |
A | 2 | 3 | 1 | 1 |
A | 3 | 5 | 3 | 3 |
A | Totalt | 9 | - | - |
B | 1 | 2 | - | 5 |
B | 2 | 4 | 2 | 2 |
B | 3 | 6 | 4 | 4 |
B | Totalt | 12 | - | - |
Totalt | - | 21 | - | - |
Funktionen above utan total (tredje kolumnen) ger bara resultat inom varje sorteringsgrupp. Ett NULL-värde returneras på översta raden i varje kolumnsegment.
Om man lägger till total (fjärde kolumnen), betraktas hela kolumnen som ett kolumnsegment. Bara den allra översta raden returnerar NULL. Alla rader för totaler ignoreras och returnerar NULL.
Exempel på RowNo och NoOfRows
Nedanstående exempel har gjorts med RowNo- och NoOfRows-funktionerna, men kan på likartat sätt tillämpas på funktionerna ColumnNo och NoOfColumns. Observera att funktionerna ColumnNo och NoOfColumns bara är relevanta för pivottabeller.
Exempel 6:
Studera den tvådimensionella pivottabellen nedan:
Month | Grp | RowNo() | RowNo(total) | NoOfRows() | NoOfRows(total) |
---|---|---|---|---|---|
1 | A | 1 | 1 | 2 | 6 |
1 | B | 2 | 2 | 2 | 6 |
1 | Totalt | 0 | - | 2 | - |
2 | A | 1 | 3 | 2 | 6 |
2 | B | 2 | 4 | 2 | 6 |
2 | Totalt | 0 | - | 2 | - |
3 | A | 1 | 5 | 2 | 6 |
3 | B | 2 | 6 | 2 | 6 |
3 | Totalt | 0 | - | 2 | - |
Totalt | - | - | 0 | - | 6 |
- Kolumn 3: Funktionen RowNoreturnerar radnumret inom varje kolumnsegment i sorteringsgruppen. I raderna för deltotaler returneras radnumret 0, eftersom dessa totaler är tydligt relaterade till ett specifikt kolumnsegment. NULL returneras i raden för summan av totalerna.
- Kolumn 4: Med total-kvalificeraren returnerar funktionen RowNo radnumret inom hela kolumnen. I raderna för deltotaler returneras ett NULL-värde. I raden för sammanlagda totaler returneras 0.
- Kolumn 5 Funktionen NoOfRows returnerar antalet rader som innehåller data inom varje kolumnsegment i sorteringsgruppen. I raderna för deltotaler returneras samma tal som i dataraderna. NULL returneras i raden för summan av totalerna.
- Kolumn 6: Funktionen NoOfRows med total returnerar antalet datarader inom hela kolumnen, vilket också är vad som returneras i raden för sammanlagda totaler. I raderna för delsummor returneras NULL.